package cn.com.agree.service;

import cn.com.agree.dto.book.CreateOrUpdateBookDTO;
import cn.com.agree.dto.book.CreateOrUpdateMackDTO;
import cn.com.agree.model.ProductDO;
import cn.com.agree.model.ProductMacDO;

import java.util.List;

/**
 * @author pedro@TaleLin
 * @author Juzi@TaleLin
 */
public interface ProductService {

    boolean createBook(CreateOrUpdateBookDTO validator);

    List<ProductDO> getBookByKeyword(String q);

    boolean updateBook(ProductDO product, CreateOrUpdateBookDTO validator);

    boolean updatePro(ProductDO productDO);

    ProductDO getById(Integer id);

    List<ProductDO> findAll();

    List<ProductDO> SelectProAll();

    boolean deleteById(Integer id);

    int selectCount();

    //通过机构码查找物理地址
    List<ProductMacDO> getMacListByBcode(String bcode);

    //查询还有一个月失效的版本
    String[] selectListByOvertimeLess();

    //查询失效的版本
    Integer selectByOvertimeOver();

    boolean updatePstatus(Integer id);

    String downloadLic(ProductDO pro);

    List<ProductDO> getAllByMore(ProductDO pro);

    ProductDO selectByBcode(String bcode);

    /*book end mac start*/

    boolean deleteMacById(Integer id);

    boolean updateMac(ProductMacDO product, CreateOrUpdateMackDTO validator);

    ProductMacDO getByMacId(Integer id);

    boolean createMac(CreateOrUpdateMackDTO validator);
}
